/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.camachosanchez.controler.jpa;

import com.camachosanchez.bean.Alineaciones;
import com.camachosanchez.bean.ComprobacionBandaRodamientoPresion;
import com.camachosanchez.bean.ControlCambioNeumatico;
import com.camachosanchez.bean.ControlReencauche;
import com.camachosanchez.bean.Despinches;
import com.camachosanchez.bean.Egresos;
import com.camachosanchez.bean.InspeccionEquipo;
import com.camachosanchez.bean.MedicionComprobacion;
import com.camachosanchez.bean.Neumaticos;
import com.camachosanchez.bean.Pilotos;
import com.camachosanchez.bean.Usuarios;
import com.camachosanchez.bean.Vehiculos;
import com.camachosanchez.controler.jpa.exceptions.IllegalOrphanException;
import com.camachosanchez.controler.jpa.exceptions.NonexistentEntityException;
import com.camachosanchez.util.JPAUtil;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityNotFoundException;
import javax.persistence.Query;

/**
 *
 * @author ZULLY
 */
public class UsuariosJpaController implements Serializable {

    public UsuariosJpaController(EntityManagerFactory emf) {
        this.emf = emf;
    }
    private EntityManagerFactory emf = null;

    public EntityManager getEntityManager() {
        return JPAUtil.getEntityManagerFactory().createEntityManager();
    }

    public void create(Usuarios usuarios) {
        if (usuarios.getEgresosList() == null) {
            usuarios.setEgresosList(new ArrayList<Egresos>());
        }
        if (usuarios.getControlReencaucheList() == null) {
            usuarios.setControlReencaucheList(new ArrayList<ControlReencauche>());
        }
        if (usuarios.getVehiculosList() == null) {
            usuarios.setVehiculosList(new ArrayList<Vehiculos>());
        }
        if (usuarios.getInspeccionEquipoList() == null) {
            usuarios.setInspeccionEquipoList(new ArrayList<InspeccionEquipo>());
        }
        if (usuarios.getInspeccionEquipoList1() == null) {
            usuarios.setInspeccionEquipoList1(new ArrayList<InspeccionEquipo>());
        }
        if (usuarios.getNeumaticosList() == null) {
            usuarios.setNeumaticosList(new ArrayList<Neumaticos>());
        }
        if (usuarios.getComprobacionBandaRodamientoPresionList() == null) {
            usuarios.setComprobacionBandaRodamientoPresionList(new ArrayList<ComprobacionBandaRodamientoPresion>());
        }
        if (usuarios.getAlineacionesList() == null) {
            usuarios.setAlineacionesList(new ArrayList<Alineaciones>());
        }
        if (usuarios.getMedicionComprobacionList() == null) {
            usuarios.setMedicionComprobacionList(new ArrayList<MedicionComprobacion>());
        }
        if (usuarios.getPilotosList() == null) {
            usuarios.setPilotosList(new ArrayList<Pilotos>());
        }
        if (usuarios.getControlCambioNeumaticoList() == null) {
            usuarios.setControlCambioNeumaticoList(new ArrayList<ControlCambioNeumatico>());
        }
        if (usuarios.getDespinchesList() == null) {
            usuarios.setDespinchesList(new ArrayList<Despinches>());
        }
        EntityManager em = null;
        try {
            em = getEntityManager();
            em.getTransaction().begin();
            List<Egresos> attachedEgresosList = new ArrayList<Egresos>();
            for (Egresos egresosListEgresosToAttach : usuarios.getEgresosList()) {
                egresosListEgresosToAttach = em.getReference(egresosListEgresosToAttach.getClass(), egresosListEgresosToAttach.getId());
                attachedEgresosList.add(egresosListEgresosToAttach);
            }
            usuarios.setEgresosList(attachedEgresosList);
            List<ControlReencauche> attachedControlReencaucheList = new ArrayList<ControlReencauche>();
            for (ControlReencauche controlReencaucheListControlReencaucheToAttach : usuarios.getControlReencaucheList()) {
                controlReencaucheListControlReencaucheToAttach = em.getReference(controlReencaucheListControlReencaucheToAttach.getClass(), controlReencaucheListControlReencaucheToAttach.getId());
                attachedControlReencaucheList.add(controlReencaucheListControlReencaucheToAttach);
            }
            usuarios.setControlReencaucheList(attachedControlReencaucheList);
            List<Vehiculos> attachedVehiculosList = new ArrayList<Vehiculos>();
            for (Vehiculos vehiculosListVehiculosToAttach : usuarios.getVehiculosList()) {
                vehiculosListVehiculosToAttach = em.getReference(vehiculosListVehiculosToAttach.getClass(), vehiculosListVehiculosToAttach.getId());
                attachedVehiculosList.add(vehiculosListVehiculosToAttach);
            }
            usuarios.setVehiculosList(attachedVehiculosList);
            List<InspeccionEquipo> attachedInspeccionEquipoList = new ArrayList<InspeccionEquipo>();
            for (InspeccionEquipo inspeccionEquipoListInspeccionEquipoToAttach : usuarios.getInspeccionEquipoList()) {
                inspeccionEquipoListInspeccionEquipoToAttach = em.getReference(inspeccionEquipoListInspeccionEquipoToAttach.getClass(), inspeccionEquipoListInspeccionEquipoToAttach.getId());
                attachedInspeccionEquipoList.add(inspeccionEquipoListInspeccionEquipoToAttach);
            }
            usuarios.setInspeccionEquipoList(attachedInspeccionEquipoList);
            List<InspeccionEquipo> attachedInspeccionEquipoList1 = new ArrayList<InspeccionEquipo>();
            for (InspeccionEquipo inspeccionEquipoList1InspeccionEquipoToAttach : usuarios.getInspeccionEquipoList1()) {
                inspeccionEquipoList1InspeccionEquipoToAttach = em.getReference(inspeccionEquipoList1InspeccionEquipoToAttach.getClass(), inspeccionEquipoList1InspeccionEquipoToAttach.getId());
                attachedInspeccionEquipoList1.add(inspeccionEquipoList1InspeccionEquipoToAttach);
            }
            usuarios.setInspeccionEquipoList1(attachedInspeccionEquipoList1);
            List<Neumaticos> attachedNeumaticosList = new ArrayList<Neumaticos>();
            for (Neumaticos neumaticosListNeumaticosToAttach : usuarios.getNeumaticosList()) {
                neumaticosListNeumaticosToAttach = em.getReference(neumaticosListNeumaticosToAttach.getClass(), neumaticosListNeumaticosToAttach.getId());
                attachedNeumaticosList.add(neumaticosListNeumaticosToAttach);
            }
            usuarios.setNeumaticosList(attachedNeumaticosList);
            List<ComprobacionBandaRodamientoPresion> attachedComprobacionBandaRodamientoPresionList = new ArrayList<ComprobacionBandaRodamientoPresion>();
            for (ComprobacionBandaRodamientoPresion comprobacionBandaRodamientoPresionListComprobacionBandaRodamientoPresionToAttach : usuarios.getComprobacionBandaRodamientoPresionList()) {
                comprobacionBandaRodamientoPresionListComprobacionBandaRodamientoPresionToAttach = em.getReference(comprobacionBandaRodamientoPresionListComprobacionBandaRodamientoPresionToAttach.getClass(), comprobacionBandaRodamientoPresionListComprobacionBandaRodamientoPresionToAttach.getId());
                attachedComprobacionBandaRodamientoPresionList.add(comprobacionBandaRodamientoPresionListComprobacionBandaRodamientoPresionToAttach);
            }
            usuarios.setComprobacionBandaRodamientoPresionList(attachedComprobacionBandaRodamientoPresionList);
            List<Alineaciones> attachedAlineacionesList = new ArrayList<Alineaciones>();
            for (Alineaciones alineacionesListAlineacionesToAttach : usuarios.getAlineacionesList()) {
                alineacionesListAlineacionesToAttach = em.getReference(alineacionesListAlineacionesToAttach.getClass(), alineacionesListAlineacionesToAttach.getId());
                attachedAlineacionesList.add(alineacionesListAlineacionesToAttach);
            }
            usuarios.setAlineacionesList(attachedAlineacionesList);
            List<MedicionComprobacion> attachedMedicionComprobacionList = new ArrayList<MedicionComprobacion>();
            for (MedicionComprobacion medicionComprobacionListMedicionComprobacionToAttach : usuarios.getMedicionComprobacionList()) {
                medicionComprobacionListMedicionComprobacionToAttach = em.getReference(medicionComprobacionListMedicionComprobacionToAttach.getClass(), medicionComprobacionListMedicionComprobacionToAttach.getId());
                attachedMedicionComprobacionList.add(medicionComprobacionListMedicionComprobacionToAttach);
            }
            usuarios.setMedicionComprobacionList(attachedMedicionComprobacionList);
            List<Pilotos> attachedPilotosList = new ArrayList<Pilotos>();
            for (Pilotos pilotosListPilotosToAttach : usuarios.getPilotosList()) {
                pilotosListPilotosToAttach = em.getReference(pilotosListPilotosToAttach.getClass(), pilotosListPilotosToAttach.getId());
                attachedPilotosList.add(pilotosListPilotosToAttach);
            }
            usuarios.setPilotosList(attachedPilotosList);
            List<ControlCambioNeumatico> attachedControlCambioNeumaticoList = new ArrayList<ControlCambioNeumatico>();
            for (ControlCambioNeumatico controlCambioNeumaticoListControlCambioNeumaticoToAttach : usuarios.getControlCambioNeumaticoList()) {
                controlCambioNeumaticoListControlCambioNeumaticoToAttach = em.getReference(controlCambioNeumaticoListControlCambioNeumaticoToAttach.getClass(), controlCambioNeumaticoListControlCambioNeumaticoToAttach.getId());
                attachedControlCambioNeumaticoList.add(controlCambioNeumaticoListControlCambioNeumaticoToAttach);
            }
            usuarios.setControlCambioNeumaticoList(attachedControlCambioNeumaticoList);
            List<Despinches> attachedDespinchesList = new ArrayList<Despinches>();
            for (Despinches despinchesListDespinchesToAttach : usuarios.getDespinchesList()) {
                despinchesListDespinchesToAttach = em.getReference(despinchesListDespinchesToAttach.getClass(), despinchesListDespinchesToAttach.getId());
                attachedDespinchesList.add(despinchesListDespinchesToAttach);
            }
            usuarios.setDespinchesList(attachedDespinchesList);
            em.persist(usuarios);
            for (Egresos egresosListEgresos : usuarios.getEgresosList()) {
                Usuarios oldIdUsuariosOfEgresosListEgresos = egresosListEgresos.getIdUsuarios();
                egresosListEgresos.setIdUsuarios(usuarios);
                egresosListEgresos = em.merge(egresosListEgresos);
                if (oldIdUsuariosOfEgresosListEgresos != null) {
                    oldIdUsuariosOfEgresosListEgresos.getEgresosList().remove(egresosListEgresos);
                    oldIdUsuariosOfEgresosListEgresos = em.merge(oldIdUsuariosOfEgresosListEgresos);
                }
            }
            for (ControlReencauche controlReencaucheListControlReencauche : usuarios.getControlReencaucheList()) {
                Usuarios oldIdUsuarioOfControlReencaucheListControlReencauche = controlReencaucheListControlReencauche.getIdUsuario();
                controlReencaucheListControlReencauche.setIdUsuario(usuarios);
                controlReencaucheListControlReencauche = em.merge(controlReencaucheListControlReencauche);
                if (oldIdUsuarioOfControlReencaucheListControlReencauche != null) {
                    oldIdUsuarioOfControlReencaucheListControlReencauche.getControlReencaucheList().remove(controlReencaucheListControlReencauche);
                    oldIdUsuarioOfControlReencaucheListControlReencauche = em.merge(oldIdUsuarioOfControlReencaucheListControlReencauche);
                }
            }
            for (Vehiculos vehiculosListVehiculos : usuarios.getVehiculosList()) {
                Usuarios oldIdUsuarioOfVehiculosListVehiculos = vehiculosListVehiculos.getIdUsuario();
                vehiculosListVehiculos.setIdUsuario(usuarios);
                vehiculosListVehiculos = em.merge(vehiculosListVehiculos);
                if (oldIdUsuarioOfVehiculosListVehiculos != null) {
                    oldIdUsuarioOfVehiculosListVehiculos.getVehiculosList().remove(vehiculosListVehiculos);
                    oldIdUsuarioOfVehiculosListVehiculos = em.merge(oldIdUsuarioOfVehiculosListVehiculos);
                }
            }
            for (InspeccionEquipo inspeccionEquipoListInspeccionEquipo : usuarios.getInspeccionEquipoList()) {
                Usuarios oldIdUsuarioSalidaOfInspeccionEquipoListInspeccionEquipo = inspeccionEquipoListInspeccionEquipo.getIdUsuarioSalida();
                inspeccionEquipoListInspeccionEquipo.setIdUsuarioSalida(usuarios);
                inspeccionEquipoListInspeccionEquipo = em.merge(inspeccionEquipoListInspeccionEquipo);
                if (oldIdUsuarioSalidaOfInspeccionEquipoListInspeccionEquipo != null) {
                    oldIdUsuarioSalidaOfInspeccionEquipoListInspeccionEquipo.getInspeccionEquipoList().remove(inspeccionEquipoListInspeccionEquipo);
                    oldIdUsuarioSalidaOfInspeccionEquipoListInspeccionEquipo = em.merge(oldIdUsuarioSalidaOfInspeccionEquipoListInspeccionEquipo);
                }
            }
            for (InspeccionEquipo inspeccionEquipoList1InspeccionEquipo : usuarios.getInspeccionEquipoList1()) {
                Usuarios oldIdUsuarioEntradaOfInspeccionEquipoList1InspeccionEquipo = inspeccionEquipoList1InspeccionEquipo.getIdUsuarioEntrada();
                inspeccionEquipoList1InspeccionEquipo.setIdUsuarioEntrada(usuarios);
                inspeccionEquipoList1InspeccionEquipo = em.merge(inspeccionEquipoList1InspeccionEquipo);
                if (oldIdUsuarioEntradaOfInspeccionEquipoList1InspeccionEquipo != null) {
                    oldIdUsuarioEntradaOfInspeccionEquipoList1InspeccionEquipo.getInspeccionEquipoList1().remove(inspeccionEquipoList1InspeccionEquipo);
                    oldIdUsuarioEntradaOfInspeccionEquipoList1InspeccionEquipo = em.merge(oldIdUsuarioEntradaOfInspeccionEquipoList1InspeccionEquipo);
                }
            }
            for (Neumaticos neumaticosListNeumaticos : usuarios.getNeumaticosList()) {
                Usuarios oldIdUsuarioOfNeumaticosListNeumaticos = neumaticosListNeumaticos.getIdUsuario();
                neumaticosListNeumaticos.setIdUsuario(usuarios);
                neumaticosListNeumaticos = em.merge(neumaticosListNeumaticos);
                if (oldIdUsuarioOfNeumaticosListNeumaticos != null) {
                    oldIdUsuarioOfNeumaticosListNeumaticos.getNeumaticosList().remove(neumaticosListNeumaticos);
                    oldIdUsuarioOfNeumaticosListNeumaticos = em.merge(oldIdUsuarioOfNeumaticosListNeumaticos);
                }
            }
            for (ComprobacionBandaRodamientoPresion comprobacionBandaRodamientoPresionListComprobacionBandaRodamientoPresion : usuarios.getComprobacionBandaRodamientoPresionList()) {
                Usuarios oldIdUsuarioOfComprobacionBandaRodamientoPresionListComprobacionBandaRodamientoPresion = comprobacionBandaRodamientoPresionListComprobacionBandaRodamientoPresion.getIdUsuario();
                comprobacionBandaRodamientoPresionListComprobacionBandaRodamientoPresion.setIdUsuario(usuarios);
                comprobacionBandaRodamientoPresionListComprobacionBandaRodamientoPresion = em.merge(comprobacionBandaRodamientoPresionListComprobacionBandaRodamientoPresion);
                if (oldIdUsuarioOfComprobacionBandaRodamientoPresionListComprobacionBandaRodamientoPresion != null) {
                    oldIdUsuarioOfComprobacionBandaRodamientoPresionListComprobacionBandaRodamientoPresion.getComprobacionBandaRodamientoPresionList().remove(comprobacionBandaRodamientoPresionListComprobacionBandaRodamientoPresion);
                    oldIdUsuarioOfComprobacionBandaRodamientoPresionListComprobacionBandaRodamientoPresion = em.merge(oldIdUsuarioOfComprobacionBandaRodamientoPresionListComprobacionBandaRodamientoPresion);
                }
            }
            for (Alineaciones alineacionesListAlineaciones : usuarios.getAlineacionesList()) {
                Usuarios oldIdUsuariosOfAlineacionesListAlineaciones = alineacionesListAlineaciones.getIdUsuarios();
                alineacionesListAlineaciones.setIdUsuarios(usuarios);
                alineacionesListAlineaciones = em.merge(alineacionesListAlineaciones);
                if (oldIdUsuariosOfAlineacionesListAlineaciones != null) {
                    oldIdUsuariosOfAlineacionesListAlineaciones.getAlineacionesList().remove(alineacionesListAlineaciones);
                    oldIdUsuariosOfAlineacionesListAlineaciones = em.merge(oldIdUsuariosOfAlineacionesListAlineaciones);
                }
            }
            for (MedicionComprobacion medicionComprobacionListMedicionComprobacion : usuarios.getMedicionComprobacionList()) {
                Usuarios oldIdUsuarioOfMedicionComprobacionListMedicionComprobacion = medicionComprobacionListMedicionComprobacion.getIdUsuario();
                medicionComprobacionListMedicionComprobacion.setIdUsuario(usuarios);
                medicionComprobacionListMedicionComprobacion = em.merge(medicionComprobacionListMedicionComprobacion);
                if (oldIdUsuarioOfMedicionComprobacionListMedicionComprobacion != null) {
                    oldIdUsuarioOfMedicionComprobacionListMedicionComprobacion.getMedicionComprobacionList().remove(medicionComprobacionListMedicionComprobacion);
                    oldIdUsuarioOfMedicionComprobacionListMedicionComprobacion = em.merge(oldIdUsuarioOfMedicionComprobacionListMedicionComprobacion);
                }
            }
            for (Pilotos pilotosListPilotos : usuarios.getPilotosList()) {
                Usuarios oldIdUsuarioOfPilotosListPilotos = pilotosListPilotos.getIdUsuario();
                pilotosListPilotos.setIdUsuario(usuarios);
                pilotosListPilotos = em.merge(pilotosListPilotos);
                if (oldIdUsuarioOfPilotosListPilotos != null) {
                    oldIdUsuarioOfPilotosListPilotos.getPilotosList().remove(pilotosListPilotos);
                    oldIdUsuarioOfPilotosListPilotos = em.merge(oldIdUsuarioOfPilotosListPilotos);
                }
            }
            for (ControlCambioNeumatico controlCambioNeumaticoListControlCambioNeumatico : usuarios.getControlCambioNeumaticoList()) {
                Usuarios oldIdUsuarioOfControlCambioNeumaticoListControlCambioNeumatico = controlCambioNeumaticoListControlCambioNeumatico.getIdUsuario();
                controlCambioNeumaticoListControlCambioNeumatico.setIdUsuario(usuarios);
                controlCambioNeumaticoListControlCambioNeumatico = em.merge(controlCambioNeumaticoListControlCambioNeumatico);
                if (oldIdUsuarioOfControlCambioNeumaticoListControlCambioNeumatico != null) {
                    oldIdUsuarioOfControlCambioNeumaticoListControlCambioNeumatico.getControlCambioNeumaticoList().remove(controlCambioNeumaticoListControlCambioNeumatico);
                    oldIdUsuarioOfControlCambioNeumaticoListControlCambioNeumatico = em.merge(oldIdUsuarioOfControlCambioNeumaticoListControlCambioNeumatico);
                }
            }
            for (Despinches despinchesListDespinches : usuarios.getDespinchesList()) {
                Usuarios oldIdUsuariosOfDespinchesListDespinches = despinchesListDespinches.getIdUsuarios();
                despinchesListDespinches.setIdUsuarios(usuarios);
                despinchesListDespinches = em.merge(despinchesListDespinches);
                if (oldIdUsuariosOfDespinchesListDespinches != null) {
                    oldIdUsuariosOfDespinchesListDespinches.getDespinchesList().remove(despinchesListDespinches);
                    oldIdUsuariosOfDespinchesListDespinches = em.merge(oldIdUsuariosOfDespinchesListDespinches);
                }
            }
            em.getTransaction().commit();
        } finally {
            if (em != null) {
                em.close();
            }
        }
    }

    public void edit(Usuarios usuarios) throws IllegalOrphanException, NonexistentEntityException, Exception {
        EntityManager em = null;
        try {
            em = getEntityManager();
            em.getTransaction().begin();
            Usuarios persistentUsuarios = em.find(Usuarios.class, usuarios.getId());
            List<Egresos> egresosListOld = persistentUsuarios.getEgresosList();
            List<Egresos> egresosListNew = usuarios.getEgresosList();
            List<ControlReencauche> controlReencaucheListOld = persistentUsuarios.getControlReencaucheList();
            List<ControlReencauche> controlReencaucheListNew = usuarios.getControlReencaucheList();
            List<Vehiculos> vehiculosListOld = persistentUsuarios.getVehiculosList();
            List<Vehiculos> vehiculosListNew = usuarios.getVehiculosList();
            List<InspeccionEquipo> inspeccionEquipoListOld = persistentUsuarios.getInspeccionEquipoList();
            List<InspeccionEquipo> inspeccionEquipoListNew = usuarios.getInspeccionEquipoList();
            List<InspeccionEquipo> inspeccionEquipoList1Old = persistentUsuarios.getInspeccionEquipoList1();
            List<InspeccionEquipo> inspeccionEquipoList1New = usuarios.getInspeccionEquipoList1();
            List<Neumaticos> neumaticosListOld = persistentUsuarios.getNeumaticosList();
            List<Neumaticos> neumaticosListNew = usuarios.getNeumaticosList();
            List<ComprobacionBandaRodamientoPresion> comprobacionBandaRodamientoPresionListOld = persistentUsuarios.getComprobacionBandaRodamientoPresionList();
            List<ComprobacionBandaRodamientoPresion> comprobacionBandaRodamientoPresionListNew = usuarios.getComprobacionBandaRodamientoPresionList();
            List<Alineaciones> alineacionesListOld = persistentUsuarios.getAlineacionesList();
            List<Alineaciones> alineacionesListNew = usuarios.getAlineacionesList();
            List<MedicionComprobacion> medicionComprobacionListOld = persistentUsuarios.getMedicionComprobacionList();
            List<MedicionComprobacion> medicionComprobacionListNew = usuarios.getMedicionComprobacionList();
            List<Pilotos> pilotosListOld = persistentUsuarios.getPilotosList();
            List<Pilotos> pilotosListNew = usuarios.getPilotosList();
            List<ControlCambioNeumatico> controlCambioNeumaticoListOld = persistentUsuarios.getControlCambioNeumaticoList();
            List<ControlCambioNeumatico> controlCambioNeumaticoListNew = usuarios.getControlCambioNeumaticoList();
            List<Despinches> despinchesListOld = persistentUsuarios.getDespinchesList();
            List<Despinches> despinchesListNew = usuarios.getDespinchesList();
            List<String> illegalOrphanMessages = null;
            for (Egresos egresosListOldEgresos : egresosListOld) {
                if (!egresosListNew.contains(egresosListOldEgresos)) {
                    if (illegalOrphanMessages == null) {
                        illegalOrphanMessages = new ArrayList<String>();
                    }
                    illegalOrphanMessages.add("You must retain Egresos " + egresosListOldEgresos + " since its idUsuarios field is not nullable.");
                }
            }
            for (ControlReencauche controlReencaucheListOldControlReencauche : controlReencaucheListOld) {
                if (!controlReencaucheListNew.contains(controlReencaucheListOldControlReencauche)) {
                    if (illegalOrphanMessages == null) {
                        illegalOrphanMessages = new ArrayList<String>();
                    }
                    illegalOrphanMessages.add("You must retain ControlReencauche " + controlReencaucheListOldControlReencauche + " since its idUsuario field is not nullable.");
                }
            }
            for (Vehiculos vehiculosListOldVehiculos : vehiculosListOld) {
                if (!vehiculosListNew.contains(vehiculosListOldVehiculos)) {
                    if (illegalOrphanMessages == null) {
                        illegalOrphanMessages = new ArrayList<String>();
                    }
                    illegalOrphanMessages.add("You must retain Vehiculos " + vehiculosListOldVehiculos + " since its idUsuario field is not nullable.");
                }
            }
            for (InspeccionEquipo inspeccionEquipoListOldInspeccionEquipo : inspeccionEquipoListOld) {
                if (!inspeccionEquipoListNew.contains(inspeccionEquipoListOldInspeccionEquipo)) {
                    if (illegalOrphanMessages == null) {
                        illegalOrphanMessages = new ArrayList<String>();
                    }
                    illegalOrphanMessages.add("You must retain InspeccionEquipo " + inspeccionEquipoListOldInspeccionEquipo + " since its idUsuarioSalida field is not nullable.");
                }
            }
            for (InspeccionEquipo inspeccionEquipoList1OldInspeccionEquipo : inspeccionEquipoList1Old) {
                if (!inspeccionEquipoList1New.contains(inspeccionEquipoList1OldInspeccionEquipo)) {
                    if (illegalOrphanMessages == null) {
                        illegalOrphanMessages = new ArrayList<String>();
                    }
                    illegalOrphanMessages.add("You must retain InspeccionEquipo " + inspeccionEquipoList1OldInspeccionEquipo + " since its idUsuarioEntrada field is not nullable.");
                }
            }
            for (Neumaticos neumaticosListOldNeumaticos : neumaticosListOld) {
                if (!neumaticosListNew.contains(neumaticosListOldNeumaticos)) {
                    if (illegalOrphanMessages == null) {
                        illegalOrphanMessages = new ArrayList<String>();
                    }
                    illegalOrphanMessages.add("You must retain Neumaticos " + neumaticosListOldNeumaticos + " since its idUsuario field is not nullable.");
                }
            }
            for (ComprobacionBandaRodamientoPresion comprobacionBandaRodamientoPresionListOldComprobacionBandaRodamientoPresion : comprobacionBandaRodamientoPresionListOld) {
                if (!comprobacionBandaRodamientoPresionListNew.contains(comprobacionBandaRodamientoPresionListOldComprobacionBandaRodamientoPresion)) {
                    if (illegalOrphanMessages == null) {
                        illegalOrphanMessages = new ArrayList<String>();
                    }
                    illegalOrphanMessages.add("You must retain ComprobacionBandaRodamientoPresion " + comprobacionBandaRodamientoPresionListOldComprobacionBandaRodamientoPresion + " since its idUsuario field is not nullable.");
                }
            }
            for (Alineaciones alineacionesListOldAlineaciones : alineacionesListOld) {
                if (!alineacionesListNew.contains(alineacionesListOldAlineaciones)) {
                    if (illegalOrphanMessages == null) {
                        illegalOrphanMessages = new ArrayList<String>();
                    }
                    illegalOrphanMessages.add("You must retain Alineaciones " + alineacionesListOldAlineaciones + " since its idUsuarios field is not nullable.");
                }
            }
            for (MedicionComprobacion medicionComprobacionListOldMedicionComprobacion : medicionComprobacionListOld) {
                if (!medicionComprobacionListNew.contains(medicionComprobacionListOldMedicionComprobacion)) {
                    if (illegalOrphanMessages == null) {
                        illegalOrphanMessages = new ArrayList<String>();
                    }
                    illegalOrphanMessages.add("You must retain MedicionComprobacion " + medicionComprobacionListOldMedicionComprobacion + " since its idUsuario field is not nullable.");
                }
            }
            for (Pilotos pilotosListOldPilotos : pilotosListOld) {
                if (!pilotosListNew.contains(pilotosListOldPilotos)) {
                    if (illegalOrphanMessages == null) {
                        illegalOrphanMessages = new ArrayList<String>();
                    }
                    illegalOrphanMessages.add("You must retain Pilotos " + pilotosListOldPilotos + " since its idUsuario field is not nullable.");
                }
            }
            for (ControlCambioNeumatico controlCambioNeumaticoListOldControlCambioNeumatico : controlCambioNeumaticoListOld) {
                if (!controlCambioNeumaticoListNew.contains(controlCambioNeumaticoListOldControlCambioNeumatico)) {
                    if (illegalOrphanMessages == null) {
                        illegalOrphanMessages = new ArrayList<String>();
                    }
                    illegalOrphanMessages.add("You must retain ControlCambioNeumatico " + controlCambioNeumaticoListOldControlCambioNeumatico + " since its idUsuario field is not nullable.");
                }
            }
            for (Despinches despinchesListOldDespinches : despinchesListOld) {
                if (!despinchesListNew.contains(despinchesListOldDespinches)) {
                    if (illegalOrphanMessages == null) {
                        illegalOrphanMessages = new ArrayList<String>();
                    }
                    illegalOrphanMessages.add("You must retain Despinches " + despinchesListOldDespinches + " since its idUsuarios field is not nullable.");
                }
            }
            if (illegalOrphanMessages != null) {
                throw new IllegalOrphanException(illegalOrphanMessages);
            }
            List<Egresos> attachedEgresosListNew = new ArrayList<Egresos>();
            for (Egresos egresosListNewEgresosToAttach : egresosListNew) {
                egresosListNewEgresosToAttach = em.getReference(egresosListNewEgresosToAttach.getClass(), egresosListNewEgresosToAttach.getId());
                attachedEgresosListNew.add(egresosListNewEgresosToAttach);
            }
            egresosListNew = attachedEgresosListNew;
            usuarios.setEgresosList(egresosListNew);
            List<ControlReencauche> attachedControlReencaucheListNew = new ArrayList<ControlReencauche>();
            for (ControlReencauche controlReencaucheListNewControlReencaucheToAttach : controlReencaucheListNew) {
                controlReencaucheListNewControlReencaucheToAttach = em.getReference(controlReencaucheListNewControlReencaucheToAttach.getClass(), controlReencaucheListNewControlReencaucheToAttach.getId());
                attachedControlReencaucheListNew.add(controlReencaucheListNewControlReencaucheToAttach);
            }
            controlReencaucheListNew = attachedControlReencaucheListNew;
            usuarios.setControlReencaucheList(controlReencaucheListNew);
            List<Vehiculos> attachedVehiculosListNew = new ArrayList<Vehiculos>();
            for (Vehiculos vehiculosListNewVehiculosToAttach : vehiculosListNew) {
                vehiculosListNewVehiculosToAttach = em.getReference(vehiculosListNewVehiculosToAttach.getClass(), vehiculosListNewVehiculosToAttach.getId());
                attachedVehiculosListNew.add(vehiculosListNewVehiculosToAttach);
            }
            vehiculosListNew = attachedVehiculosListNew;
            usuarios.setVehiculosList(vehiculosListNew);
            List<InspeccionEquipo> attachedInspeccionEquipoListNew = new ArrayList<InspeccionEquipo>();
            for (InspeccionEquipo inspeccionEquipoListNewInspeccionEquipoToAttach : inspeccionEquipoListNew) {
                inspeccionEquipoListNewInspeccionEquipoToAttach = em.getReference(inspeccionEquipoListNewInspeccionEquipoToAttach.getClass(), inspeccionEquipoListNewInspeccionEquipoToAttach.getId());
                attachedInspeccionEquipoListNew.add(inspeccionEquipoListNewInspeccionEquipoToAttach);
            }
            inspeccionEquipoListNew = attachedInspeccionEquipoListNew;
            usuarios.setInspeccionEquipoList(inspeccionEquipoListNew);
            List<InspeccionEquipo> attachedInspeccionEquipoList1New = new ArrayList<InspeccionEquipo>();
            for (InspeccionEquipo inspeccionEquipoList1NewInspeccionEquipoToAttach : inspeccionEquipoList1New) {
                inspeccionEquipoList1NewInspeccionEquipoToAttach = em.getReference(inspeccionEquipoList1NewInspeccionEquipoToAttach.getClass(), inspeccionEquipoList1NewInspeccionEquipoToAttach.getId());
                attachedInspeccionEquipoList1New.add(inspeccionEquipoList1NewInspeccionEquipoToAttach);
            }
            inspeccionEquipoList1New = attachedInspeccionEquipoList1New;
            usuarios.setInspeccionEquipoList1(inspeccionEquipoList1New);
            List<Neumaticos> attachedNeumaticosListNew = new ArrayList<Neumaticos>();
            for (Neumaticos neumaticosListNewNeumaticosToAttach : neumaticosListNew) {
                neumaticosListNewNeumaticosToAttach = em.getReference(neumaticosListNewNeumaticosToAttach.getClass(), neumaticosListNewNeumaticosToAttach.getId());
                attachedNeumaticosListNew.add(neumaticosListNewNeumaticosToAttach);
            }
            neumaticosListNew = attachedNeumaticosListNew;
            usuarios.setNeumaticosList(neumaticosListNew);
            List<ComprobacionBandaRodamientoPresion> attachedComprobacionBandaRodamientoPresionListNew = new ArrayList<ComprobacionBandaRodamientoPresion>();
            for (ComprobacionBandaRodamientoPresion comprobacionBandaRodamientoPresionListNewComprobacionBandaRodamientoPresionToAttach : comprobacionBandaRodamientoPresionListNew) {
                comprobacionBandaRodamientoPresionListNewComprobacionBandaRodamientoPresionToAttach = em.getReference(comprobacionBandaRodamientoPresionListNewComprobacionBandaRodamientoPresionToAttach.getClass(), comprobacionBandaRodamientoPresionListNewComprobacionBandaRodamientoPresionToAttach.getId());
                attachedComprobacionBandaRodamientoPresionListNew.add(comprobacionBandaRodamientoPresionListNewComprobacionBandaRodamientoPresionToAttach);
            }
            comprobacionBandaRodamientoPresionListNew = attachedComprobacionBandaRodamientoPresionListNew;
            usuarios.setComprobacionBandaRodamientoPresionList(comprobacionBandaRodamientoPresionListNew);
            List<Alineaciones> attachedAlineacionesListNew = new ArrayList<Alineaciones>();
            for (Alineaciones alineacionesListNewAlineacionesToAttach : alineacionesListNew) {
                alineacionesListNewAlineacionesToAttach = em.getReference(alineacionesListNewAlineacionesToAttach.getClass(), alineacionesListNewAlineacionesToAttach.getId());
                attachedAlineacionesListNew.add(alineacionesListNewAlineacionesToAttach);
            }
            alineacionesListNew = attachedAlineacionesListNew;
            usuarios.setAlineacionesList(alineacionesListNew);
            List<MedicionComprobacion> attachedMedicionComprobacionListNew = new ArrayList<MedicionComprobacion>();
            for (MedicionComprobacion medicionComprobacionListNewMedicionComprobacionToAttach : medicionComprobacionListNew) {
                medicionComprobacionListNewMedicionComprobacionToAttach = em.getReference(medicionComprobacionListNewMedicionComprobacionToAttach.getClass(), medicionComprobacionListNewMedicionComprobacionToAttach.getId());
                attachedMedicionComprobacionListNew.add(medicionComprobacionListNewMedicionComprobacionToAttach);
            }
            medicionComprobacionListNew = attachedMedicionComprobacionListNew;
            usuarios.setMedicionComprobacionList(medicionComprobacionListNew);
            List<Pilotos> attachedPilotosListNew = new ArrayList<Pilotos>();
            for (Pilotos pilotosListNewPilotosToAttach : pilotosListNew) {
                pilotosListNewPilotosToAttach = em.getReference(pilotosListNewPilotosToAttach.getClass(), pilotosListNewPilotosToAttach.getId());
                attachedPilotosListNew.add(pilotosListNewPilotosToAttach);
            }
            pilotosListNew = attachedPilotosListNew;
            usuarios.setPilotosList(pilotosListNew);
            List<ControlCambioNeumatico> attachedControlCambioNeumaticoListNew = new ArrayList<ControlCambioNeumatico>();
            for (ControlCambioNeumatico controlCambioNeumaticoListNewControlCambioNeumaticoToAttach : controlCambioNeumaticoListNew) {
                controlCambioNeumaticoListNewControlCambioNeumaticoToAttach = em.getReference(controlCambioNeumaticoListNewControlCambioNeumaticoToAttach.getClass(), controlCambioNeumaticoListNewControlCambioNeumaticoToAttach.getId());
                attachedControlCambioNeumaticoListNew.add(controlCambioNeumaticoListNewControlCambioNeumaticoToAttach);
            }
            controlCambioNeumaticoListNew = attachedControlCambioNeumaticoListNew;
            usuarios.setControlCambioNeumaticoList(controlCambioNeumaticoListNew);
            List<Despinches> attachedDespinchesListNew = new ArrayList<Despinches>();
            for (Despinches despinchesListNewDespinchesToAttach : despinchesListNew) {
                despinchesListNewDespinchesToAttach = em.getReference(despinchesListNewDespinchesToAttach.getClass(), despinchesListNewDespinchesToAttach.getId());
                attachedDespinchesListNew.add(despinchesListNewDespinchesToAttach);
            }
            despinchesListNew = attachedDespinchesListNew;
            usuarios.setDespinchesList(despinchesListNew);
            usuarios = em.merge(usuarios);
            for (Egresos egresosListNewEgresos : egresosListNew) {
                if (!egresosListOld.contains(egresosListNewEgresos)) {
                    Usuarios oldIdUsuariosOfEgresosListNewEgresos = egresosListNewEgresos.getIdUsuarios();
                    egresosListNewEgresos.setIdUsuarios(usuarios);
                    egresosListNewEgresos = em.merge(egresosListNewEgresos);
                    if (oldIdUsuariosOfEgresosListNewEgresos != null && !oldIdUsuariosOfEgresosListNewEgresos.equals(usuarios)) {
                        oldIdUsuariosOfEgresosListNewEgresos.getEgresosList().remove(egresosListNewEgresos);
                        oldIdUsuariosOfEgresosListNewEgresos = em.merge(oldIdUsuariosOfEgresosListNewEgresos);
                    }
                }
            }
            for (ControlReencauche controlReencaucheListNewControlReencauche : controlReencaucheListNew) {
                if (!controlReencaucheListOld.contains(controlReencaucheListNewControlReencauche)) {
                    Usuarios oldIdUsuarioOfControlReencaucheListNewControlReencauche = controlReencaucheListNewControlReencauche.getIdUsuario();
                    controlReencaucheListNewControlReencauche.setIdUsuario(usuarios);
                    controlReencaucheListNewControlReencauche = em.merge(controlReencaucheListNewControlReencauche);
                    if (oldIdUsuarioOfControlReencaucheListNewControlReencauche != null && !oldIdUsuarioOfControlReencaucheListNewControlReencauche.equals(usuarios)) {
                        oldIdUsuarioOfControlReencaucheListNewControlReencauche.getControlReencaucheList().remove(controlReencaucheListNewControlReencauche);
                        oldIdUsuarioOfControlReencaucheListNewControlReencauche = em.merge(oldIdUsuarioOfControlReencaucheListNewControlReencauche);
                    }
                }
            }
            for (Vehiculos vehiculosListNewVehiculos : vehiculosListNew) {
                if (!vehiculosListOld.contains(vehiculosListNewVehiculos)) {
                    Usuarios oldIdUsuarioOfVehiculosListNewVehiculos = vehiculosListNewVehiculos.getIdUsuario();
                    vehiculosListNewVehiculos.setIdUsuario(usuarios);
                    vehiculosListNewVehiculos = em.merge(vehiculosListNewVehiculos);
                    if (oldIdUsuarioOfVehiculosListNewVehiculos != null && !oldIdUsuarioOfVehiculosListNewVehiculos.equals(usuarios)) {
                        oldIdUsuarioOfVehiculosListNewVehiculos.getVehiculosList().remove(vehiculosListNewVehiculos);
                        oldIdUsuarioOfVehiculosListNewVehiculos = em.merge(oldIdUsuarioOfVehiculosListNewVehiculos);
                    }
                }
            }
            for (InspeccionEquipo inspeccionEquipoListNewInspeccionEquipo : inspeccionEquipoListNew) {
                if (!inspeccionEquipoListOld.contains(inspeccionEquipoListNewInspeccionEquipo)) {
                    Usuarios oldIdUsuarioSalidaOfInspeccionEquipoListNewInspeccionEquipo = inspeccionEquipoListNewInspeccionEquipo.getIdUsuarioSalida();
                    inspeccionEquipoListNewInspeccionEquipo.setIdUsuarioSalida(usuarios);
                    inspeccionEquipoListNewInspeccionEquipo = em.merge(inspeccionEquipoListNewInspeccionEquipo);
                    if (oldIdUsuarioSalidaOfInspeccionEquipoListNewInspeccionEquipo != null && !oldIdUsuarioSalidaOfInspeccionEquipoListNewInspeccionEquipo.equals(usuarios)) {
                        oldIdUsuarioSalidaOfInspeccionEquipoListNewInspeccionEquipo.getInspeccionEquipoList().remove(inspeccionEquipoListNewInspeccionEquipo);
                        oldIdUsuarioSalidaOfInspeccionEquipoListNewInspeccionEquipo = em.merge(oldIdUsuarioSalidaOfInspeccionEquipoListNewInspeccionEquipo);
                    }
                }
            }
            for (InspeccionEquipo inspeccionEquipoList1NewInspeccionEquipo : inspeccionEquipoList1New) {
                if (!inspeccionEquipoList1Old.contains(inspeccionEquipoList1NewInspeccionEquipo)) {
                    Usuarios oldIdUsuarioEntradaOfInspeccionEquipoList1NewInspeccionEquipo = inspeccionEquipoList1NewInspeccionEquipo.getIdUsuarioEntrada();
                    inspeccionEquipoList1NewInspeccionEquipo.setIdUsuarioEntrada(usuarios);
                    inspeccionEquipoList1NewInspeccionEquipo = em.merge(inspeccionEquipoList1NewInspeccionEquipo);
                    if (oldIdUsuarioEntradaOfInspeccionEquipoList1NewInspeccionEquipo != null && !oldIdUsuarioEntradaOfInspeccionEquipoList1NewInspeccionEquipo.equals(usuarios)) {
                        oldIdUsuarioEntradaOfInspeccionEquipoList1NewInspeccionEquipo.getInspeccionEquipoList1().remove(inspeccionEquipoList1NewInspeccionEquipo);
                        oldIdUsuarioEntradaOfInspeccionEquipoList1NewInspeccionEquipo = em.merge(oldIdUsuarioEntradaOfInspeccionEquipoList1NewInspeccionEquipo);
                    }
                }
            }
            for (Neumaticos neumaticosListNewNeumaticos : neumaticosListNew) {
                if (!neumaticosListOld.contains(neumaticosListNewNeumaticos)) {
                    Usuarios oldIdUsuarioOfNeumaticosListNewNeumaticos = neumaticosListNewNeumaticos.getIdUsuario();
                    neumaticosListNewNeumaticos.setIdUsuario(usuarios);
                    neumaticosListNewNeumaticos = em.merge(neumaticosListNewNeumaticos);
                    if (oldIdUsuarioOfNeumaticosListNewNeumaticos != null && !oldIdUsuarioOfNeumaticosListNewNeumaticos.equals(usuarios)) {
                        oldIdUsuarioOfNeumaticosListNewNeumaticos.getNeumaticosList().remove(neumaticosListNewNeumaticos);
                        oldIdUsuarioOfNeumaticosListNewNeumaticos = em.merge(oldIdUsuarioOfNeumaticosListNewNeumaticos);
                    }
                }
            }
            for (ComprobacionBandaRodamientoPresion comprobacionBandaRodamientoPresionListNewComprobacionBandaRodamientoPresion : comprobacionBandaRodamientoPresionListNew) {
                if (!comprobacionBandaRodamientoPresionListOld.contains(comprobacionBandaRodamientoPresionListNewComprobacionBandaRodamientoPresion)) {
                    Usuarios oldIdUsuarioOfComprobacionBandaRodamientoPresionListNewComprobacionBandaRodamientoPresion = comprobacionBandaRodamientoPresionListNewComprobacionBandaRodamientoPresion.getIdUsuario();
                    comprobacionBandaRodamientoPresionListNewComprobacionBandaRodamientoPresion.setIdUsuario(usuarios);
                    comprobacionBandaRodamientoPresionListNewComprobacionBandaRodamientoPresion = em.merge(comprobacionBandaRodamientoPresionListNewComprobacionBandaRodamientoPresion);
                    if (oldIdUsuarioOfComprobacionBandaRodamientoPresionListNewComprobacionBandaRodamientoPresion != null && !oldIdUsuarioOfComprobacionBandaRodamientoPresionListNewComprobacionBandaRodamientoPresion.equals(usuarios)) {
                        oldIdUsuarioOfComprobacionBandaRodamientoPresionListNewComprobacionBandaRodamientoPresion.getComprobacionBandaRodamientoPresionList().remove(comprobacionBandaRodamientoPresionListNewComprobacionBandaRodamientoPresion);
                        oldIdUsuarioOfComprobacionBandaRodamientoPresionListNewComprobacionBandaRodamientoPresion = em.merge(oldIdUsuarioOfComprobacionBandaRodamientoPresionListNewComprobacionBandaRodamientoPresion);
                    }
                }
            }
            for (Alineaciones alineacionesListNewAlineaciones : alineacionesListNew) {
                if (!alineacionesListOld.contains(alineacionesListNewAlineaciones)) {
                    Usuarios oldIdUsuariosOfAlineacionesListNewAlineaciones = alineacionesListNewAlineaciones.getIdUsuarios();
                    alineacionesListNewAlineaciones.setIdUsuarios(usuarios);
                    alineacionesListNewAlineaciones = em.merge(alineacionesListNewAlineaciones);
                    if (oldIdUsuariosOfAlineacionesListNewAlineaciones != null && !oldIdUsuariosOfAlineacionesListNewAlineaciones.equals(usuarios)) {
                        oldIdUsuariosOfAlineacionesListNewAlineaciones.getAlineacionesList().remove(alineacionesListNewAlineaciones);
                        oldIdUsuariosOfAlineacionesListNewAlineaciones = em.merge(oldIdUsuariosOfAlineacionesListNewAlineaciones);
                    }
                }
            }
            for (MedicionComprobacion medicionComprobacionListNewMedicionComprobacion : medicionComprobacionListNew) {
                if (!medicionComprobacionListOld.contains(medicionComprobacionListNewMedicionComprobacion)) {
                    Usuarios oldIdUsuarioOfMedicionComprobacionListNewMedicionComprobacion = medicionComprobacionListNewMedicionComprobacion.getIdUsuario();
                    medicionComprobacionListNewMedicionComprobacion.setIdUsuario(usuarios);
                    medicionComprobacionListNewMedicionComprobacion = em.merge(medicionComprobacionListNewMedicionComprobacion);
                    if (oldIdUsuarioOfMedicionComprobacionListNewMedicionComprobacion != null && !oldIdUsuarioOfMedicionComprobacionListNewMedicionComprobacion.equals(usuarios)) {
                        oldIdUsuarioOfMedicionComprobacionListNewMedicionComprobacion.getMedicionComprobacionList().remove(medicionComprobacionListNewMedicionComprobacion);
                        oldIdUsuarioOfMedicionComprobacionListNewMedicionComprobacion = em.merge(oldIdUsuarioOfMedicionComprobacionListNewMedicionComprobacion);
                    }
                }
            }
            for (Pilotos pilotosListNewPilotos : pilotosListNew) {
                if (!pilotosListOld.contains(pilotosListNewPilotos)) {
                    Usuarios oldIdUsuarioOfPilotosListNewPilotos = pilotosListNewPilotos.getIdUsuario();
                    pilotosListNewPilotos.setIdUsuario(usuarios);
                    pilotosListNewPilotos = em.merge(pilotosListNewPilotos);
                    if (oldIdUsuarioOfPilotosListNewPilotos != null && !oldIdUsuarioOfPilotosListNewPilotos.equals(usuarios)) {
                        oldIdUsuarioOfPilotosListNewPilotos.getPilotosList().remove(pilotosListNewPilotos);
                        oldIdUsuarioOfPilotosListNewPilotos = em.merge(oldIdUsuarioOfPilotosListNewPilotos);
                    }
                }
            }
            for (ControlCambioNeumatico controlCambioNeumaticoListNewControlCambioNeumatico : controlCambioNeumaticoListNew) {
                if (!controlCambioNeumaticoListOld.contains(controlCambioNeumaticoListNewControlCambioNeumatico)) {
                    Usuarios oldIdUsuarioOfControlCambioNeumaticoListNewControlCambioNeumatico = controlCambioNeumaticoListNewControlCambioNeumatico.getIdUsuario();
                    controlCambioNeumaticoListNewControlCambioNeumatico.setIdUsuario(usuarios);
                    controlCambioNeumaticoListNewControlCambioNeumatico = em.merge(controlCambioNeumaticoListNewControlCambioNeumatico);
                    if (oldIdUsuarioOfControlCambioNeumaticoListNewControlCambioNeumatico != null && !oldIdUsuarioOfControlCambioNeumaticoListNewControlCambioNeumatico.equals(usuarios)) {
                        oldIdUsuarioOfControlCambioNeumaticoListNewControlCambioNeumatico.getControlCambioNeumaticoList().remove(controlCambioNeumaticoListNewControlCambioNeumatico);
                        oldIdUsuarioOfControlCambioNeumaticoListNewControlCambioNeumatico = em.merge(oldIdUsuarioOfControlCambioNeumaticoListNewControlCambioNeumatico);
                    }
                }
            }
            for (Despinches despinchesListNewDespinches : despinchesListNew) {
                if (!despinchesListOld.contains(despinchesListNewDespinches)) {
                    Usuarios oldIdUsuariosOfDespinchesListNewDespinches = despinchesListNewDespinches.getIdUsuarios();
                    despinchesListNewDespinches.setIdUsuarios(usuarios);
                    despinchesListNewDespinches = em.merge(despinchesListNewDespinches);
                    if (oldIdUsuariosOfDespinchesListNewDespinches != null && !oldIdUsuariosOfDespinchesListNewDespinches.equals(usuarios)) {
                        oldIdUsuariosOfDespinchesListNewDespinches.getDespinchesList().remove(despinchesListNewDespinches);
                        oldIdUsuariosOfDespinchesListNewDespinches = em.merge(oldIdUsuariosOfDespinchesListNewDespinches);
                    }
                }
            }
            em.getTransaction().commit();
        } catch (Exception ex) {
            String msg = ex.getLocalizedMessage();
            if (msg == null || msg.length() == 0) {
                Integer id = usuarios.getId();
                if (findUsuarios(id) == null) {
                    throw new NonexistentEntityException("The usuarios with id " + id + " no longer exists.");
                }
            }
            throw ex;
        } finally {
            if (em != null) {
                em.close();
            }
        }
    }

    public void destroy(Integer id) throws IllegalOrphanException, NonexistentEntityException {
        EntityManager em = null;
        try {
            em = getEntityManager();
            em.getTransaction().begin();
            Usuarios usuarios;
            try {
                usuarios = em.getReference(Usuarios.class, id);
                usuarios.getId();
            } catch (EntityNotFoundException enfe) {
                throw new NonexistentEntityException("The usuarios with id " + id + " no longer exists.", enfe);
            }
            List<String> illegalOrphanMessages = null;
            List<Egresos> egresosListOrphanCheck = usuarios.getEgresosList();
            for (Egresos egresosListOrphanCheckEgresos : egresosListOrphanCheck) {
                if (illegalOrphanMessages == null) {
                    illegalOrphanMessages = new ArrayList<String>();
                }
                illegalOrphanMessages.add("This Usuarios (" + usuarios + ") cannot be destroyed since the Egresos " + egresosListOrphanCheckEgresos + " in its egresosList field has a non-nullable idUsuarios field.");
            }
            List<ControlReencauche> controlReencaucheListOrphanCheck = usuarios.getControlReencaucheList();
            for (ControlReencauche controlReencaucheListOrphanCheckControlReencauche : controlReencaucheListOrphanCheck) {
                if (illegalOrphanMessages == null) {
                    illegalOrphanMessages = new ArrayList<String>();
                }
                illegalOrphanMessages.add("This Usuarios (" + usuarios + ") cannot be destroyed since the ControlReencauche " + controlReencaucheListOrphanCheckControlReencauche + " in its controlReencaucheList field has a non-nullable idUsuario field.");
            }
            List<Vehiculos> vehiculosListOrphanCheck = usuarios.getVehiculosList();
            for (Vehiculos vehiculosListOrphanCheckVehiculos : vehiculosListOrphanCheck) {
                if (illegalOrphanMessages == null) {
                    illegalOrphanMessages = new ArrayList<String>();
                }
                illegalOrphanMessages.add("This Usuarios (" + usuarios + ") cannot be destroyed since the Vehiculos " + vehiculosListOrphanCheckVehiculos + " in its vehiculosList field has a non-nullable idUsuario field.");
            }
            List<InspeccionEquipo> inspeccionEquipoListOrphanCheck = usuarios.getInspeccionEquipoList();
            for (InspeccionEquipo inspeccionEquipoListOrphanCheckInspeccionEquipo : inspeccionEquipoListOrphanCheck) {
                if (illegalOrphanMessages == null) {
                    illegalOrphanMessages = new ArrayList<String>();
                }
                illegalOrphanMessages.add("This Usuarios (" + usuarios + ") cannot be destroyed since the InspeccionEquipo " + inspeccionEquipoListOrphanCheckInspeccionEquipo + " in its inspeccionEquipoList field has a non-nullable idUsuarioSalida field.");
            }
            List<InspeccionEquipo> inspeccionEquipoList1OrphanCheck = usuarios.getInspeccionEquipoList1();
            for (InspeccionEquipo inspeccionEquipoList1OrphanCheckInspeccionEquipo : inspeccionEquipoList1OrphanCheck) {
                if (illegalOrphanMessages == null) {
                    illegalOrphanMessages = new ArrayList<String>();
                }
                illegalOrphanMessages.add("This Usuarios (" + usuarios + ") cannot be destroyed since the InspeccionEquipo " + inspeccionEquipoList1OrphanCheckInspeccionEquipo + " in its inspeccionEquipoList1 field has a non-nullable idUsuarioEntrada field.");
            }
            List<Neumaticos> neumaticosListOrphanCheck = usuarios.getNeumaticosList();
            for (Neumaticos neumaticosListOrphanCheckNeumaticos : neumaticosListOrphanCheck) {
                if (illegalOrphanMessages == null) {
                    illegalOrphanMessages = new ArrayList<String>();
                }
                illegalOrphanMessages.add("This Usuarios (" + usuarios + ") cannot be destroyed since the Neumaticos " + neumaticosListOrphanCheckNeumaticos + " in its neumaticosList field has a non-nullable idUsuario field.");
            }
            List<ComprobacionBandaRodamientoPresion> comprobacionBandaRodamientoPresionListOrphanCheck = usuarios.getComprobacionBandaRodamientoPresionList();
            for (ComprobacionBandaRodamientoPresion comprobacionBandaRodamientoPresionListOrphanCheckComprobacionBandaRodamientoPresion : comprobacionBandaRodamientoPresionListOrphanCheck) {
                if (illegalOrphanMessages == null) {
                    illegalOrphanMessages = new ArrayList<String>();
                }
                illegalOrphanMessages.add("This Usuarios (" + usuarios + ") cannot be destroyed since the ComprobacionBandaRodamientoPresion " + comprobacionBandaRodamientoPresionListOrphanCheckComprobacionBandaRodamientoPresion + " in its comprobacionBandaRodamientoPresionList field has a non-nullable idUsuario field.");
            }
            List<Alineaciones> alineacionesListOrphanCheck = usuarios.getAlineacionesList();
            for (Alineaciones alineacionesListOrphanCheckAlineaciones : alineacionesListOrphanCheck) {
                if (illegalOrphanMessages == null) {
                    illegalOrphanMessages = new ArrayList<String>();
                }
                illegalOrphanMessages.add("This Usuarios (" + usuarios + ") cannot be destroyed since the Alineaciones " + alineacionesListOrphanCheckAlineaciones + " in its alineacionesList field has a non-nullable idUsuarios field.");
            }
            List<MedicionComprobacion> medicionComprobacionListOrphanCheck = usuarios.getMedicionComprobacionList();
            for (MedicionComprobacion medicionComprobacionListOrphanCheckMedicionComprobacion : medicionComprobacionListOrphanCheck) {
                if (illegalOrphanMessages == null) {
                    illegalOrphanMessages = new ArrayList<String>();
                }
                illegalOrphanMessages.add("This Usuarios (" + usuarios + ") cannot be destroyed since the MedicionComprobacion " + medicionComprobacionListOrphanCheckMedicionComprobacion + " in its medicionComprobacionList field has a non-nullable idUsuario field.");
            }
            List<Pilotos> pilotosListOrphanCheck = usuarios.getPilotosList();
            for (Pilotos pilotosListOrphanCheckPilotos : pilotosListOrphanCheck) {
                if (illegalOrphanMessages == null) {
                    illegalOrphanMessages = new ArrayList<String>();
                }
                illegalOrphanMessages.add("This Usuarios (" + usuarios + ") cannot be destroyed since the Pilotos " + pilotosListOrphanCheckPilotos + " in its pilotosList field has a non-nullable idUsuario field.");
            }
            List<ControlCambioNeumatico> controlCambioNeumaticoListOrphanCheck = usuarios.getControlCambioNeumaticoList();
            for (ControlCambioNeumatico controlCambioNeumaticoListOrphanCheckControlCambioNeumatico : controlCambioNeumaticoListOrphanCheck) {
                if (illegalOrphanMessages == null) {
                    illegalOrphanMessages = new ArrayList<String>();
                }
                illegalOrphanMessages.add("This Usuarios (" + usuarios + ") cannot be destroyed since the ControlCambioNeumatico " + controlCambioNeumaticoListOrphanCheckControlCambioNeumatico + " in its controlCambioNeumaticoList field has a non-nullable idUsuario field.");
            }
            List<Despinches> despinchesListOrphanCheck = usuarios.getDespinchesList();
            for (Despinches despinchesListOrphanCheckDespinches : despinchesListOrphanCheck) {
                if (illegalOrphanMessages == null) {
                    illegalOrphanMessages = new ArrayList<String>();
                }
                illegalOrphanMessages.add("This Usuarios (" + usuarios + ") cannot be destroyed since the Despinches " + despinchesListOrphanCheckDespinches + " in its despinchesList field has a non-nullable idUsuarios field.");
            }
            if (illegalOrphanMessages != null) {
                throw new IllegalOrphanException(illegalOrphanMessages);
            }
            em.remove(usuarios);
            em.getTransaction().commit();
        } finally {
            if (em != null) {
                em.close();
            }
        }
    }

    public List<Usuarios> findUsuariosEntities() {
        return findUsuariosEntities(true, -1, -1);
    }

    public List<Usuarios> findUsuariosEntities(int maxResults, int firstResult) {
        return findUsuariosEntities(false, maxResults, firstResult);
    }

    private List<Usuarios> findUsuariosEntities(boolean all, int maxResults, int firstResult) {
        EntityManager em = getEntityManager();
        try {
            Query q = em.createQuery("select object(o) from Usuarios as o");
            if (!all) {
                q.setMaxResults(maxResults);
                q.setFirstResult(firstResult);
            }
            return q.getResultList();
        } finally {
            em.close();
        }
    }

    public Usuarios findUsuarios(Integer id) {
        EntityManager em = getEntityManager();
        try {
            return em.find(Usuarios.class, id);
        } finally {
            em.close();
        }
    }

    public int getUsuariosCount() {
        EntityManager em = getEntityManager();
        try {
            Query q = em.createQuery("select count(o) from Usuarios as o");
            return ((Long) q.getSingleResult()).intValue();
        } finally {
            em.close();
        }
    }
    
}
